package com.mydomain.Bodega;
// Generated 23-ago-2009 10:56:04 by Hibernate Tools 3.2.2.GA

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;

/**
 * Usuario generated by hbm2java
 */
@Entity
@Table(name = "usuario", schema = "public")
public class Usuario implements java.io.Serializable {

	private int usuCodigo;
	private TipoUsuario tipoUsuario;
	private String usuNombre;
	private String usuApellido;
	private String usuEmail;
	private String usuClave;
	private String usuUssuario;
	private Set<Subdepartamento> subdepartamentos = new HashSet<Subdepartamento>(
			0);

	public Usuario() {
	}

	public Usuario(int usuCodigo) {
		this.usuCodigo = usuCodigo;
	}
	public Usuario(int usuCodigo, TipoUsuario tipoUsuario, String usuNombre,
			String usuApellido, String usuEmail, String usuClave,
			String usuUssuario, Set<Subdepartamento> subdepartamentos) {
		this.usuCodigo = usuCodigo;
		this.tipoUsuario = tipoUsuario;
		this.usuNombre = usuNombre;
		this.usuApellido = usuApellido;
		this.usuEmail = usuEmail;
		this.usuClave = usuClave;
		this.usuUssuario = usuUssuario;
		this.subdepartamentos = subdepartamentos;
	}

	@Id
	@Column(name = "usu_codigo", unique = true, nullable = false, precision = 5, scale = 0)
	@NotNull
	@GeneratedValue(strategy=GenerationType.AUTO)
	public int getUsuCodigo() {
		return this.usuCodigo;
	}

	public void setUsuCodigo(int usuCodigo) {
		this.usuCodigo = usuCodigo;
	}
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "tip_usu_codigo")
	public TipoUsuario getTipoUsuario() {
		return this.tipoUsuario;
	}

	public void setTipoUsuario(TipoUsuario tipoUsuario) {
		this.tipoUsuario = tipoUsuario;
	}

	@Column(name = "usu_nombre", length = 15)
	@Length(max = 15)
	public String getUsuNombre() {
		return this.usuNombre;
	}

	public void setUsuNombre(String usuNombre) {
		this.usuNombre = usuNombre;
	}

	@Column(name = "usu_apellido", length = 15)
	@Length(max = 15)
	public String getUsuApellido() {
		return this.usuApellido;
	}

	public void setUsuApellido(String usuApellido) {
		this.usuApellido = usuApellido;
	}

	@Column(name = "usu_email", length = 15)
	@Length(max = 15)
	public String getUsuEmail() {
		return this.usuEmail;
	}

	public void setUsuEmail(String usuEmail) {
		this.usuEmail = usuEmail;
	}

	@Column(name = "usu_clave", length = 15)
	@Length(max = 15)
	public String getUsuClave() {
		return this.usuClave;
	}

	public void setUsuClave(String usuClave) {
		this.usuClave = usuClave;
	}

	@Column(name = "usu_ussuario", length = 15)
	@Length(max = 15)
	public String getUsuUssuario() {
		return this.usuUssuario;
	}

	public void setUsuUssuario(String usuUssuario) {
		this.usuUssuario = usuUssuario;
	}
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "usuario")
	public Set<Subdepartamento> getSubdepartamentos() {
		return this.subdepartamentos;
	}

	public void setSubdepartamentos(Set<Subdepartamento> subdepartamentos) {
		this.subdepartamentos = subdepartamentos;
	}

}
